﻿
using Dexter.Async.Executor;
using Dexter.Async.Services;
using Dexter.Dependency;
using Dexter.Dependency.Installation;

namespace Dexter.Async.Installer {
	public class LayerInstaller : ILayerInstaller {
		/// <summary>
		/// 	Installs all the component needed by the assembly.
		/// </summary>
		/// <param name = "container">The container.</param>
		public void ServiceRegistration ( IDexterContainerRegister container ) {
			container.Register<IAsyncExecutor, AsyncExecutor> ( "AsyncExecutor", LifeCycle.Singleton );
			container.Register<IAsyncService, AsyncService> ( "AsyncService", LifeCycle.Singleton );
		}

		/// <summary>
		/// 	Setups the service.
		/// </summary>
		/// <param name = "container">The container.</param>
		public void ServiceRegistrationComplete ( IDexterContainerResolver container ) {
		}

		/// <summary>
		/// 	Setups the service.
		/// </summary>
		/// <param name = "container">The container.</param>
		public void ApplicationStarted ( IDexterContainerResolver container ) {
		}
	}
}
